﻿using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace IdentityAtRest.Contracts
{
    [ServiceContract]
    public interface IMonkeyShavingService
    {
        [OperationContract]
        [WebInvoke(Method="PUT",UriTemplate=UriTemplates.MonkeyShavingService.MonkeyShaver)]
        Monkey PutMonkeyInShaver(Monkey monkey);

        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = UriTemplates.MonkeyShavingService.PostBeerToMonkey)]
        string BuyMonkeyABeer(string monkeyName);

        [OperationContract]
        [WebGet(UriTemplate = UriTemplates.MonkeyShavingService.MonkeyShaver)]
        List<Monkey> ListAllMonkeys();

        [OperationContract]
        [WebGet(UriTemplate = UriTemplates.MonkeyShavingService.MonkeysByStatus)]
        List<Monkey> ListMonkeysByStatus(string status);

        [OperationContract]
        [WebGet(UriTemplate = UriTemplates.MonkeyShavingService.SpecificMonkey)]
        Monkey GetMonkey(string monkeyName);

        
    }
}
